Recently, great efforts have been made to develop efficient techniques for digitizing information and recording or communicating large amounts of digitized data. In conjunction with the efforts, techniques for increasing the reliability of data have also been improved.
A known technique of this field has succeeded in increasing the reliability of the data by adding error-correcting codes to the data.
This technique deals with errors which may happen in data transfers via communication paths, such as data read errors due to minor flaws, stains, or dusts on mediums like optical discs, and deals with data reception errors due to multipath fading in communications. In this technique, error-correcting codes are previously added to data before the data is recorded onto recording mediums or transmitted via communications. The added error-correcting codes are used to correct the data when the data is read by data reading apparatuses from the recording mediums or received by data receiving apparatuses via communications.
Another technique has also been developed to deal with errors which cannot be corrected with the error-correcting codes. In the other technique, data recording or transmitting apparatuses further add error-detecting codes so that errors due to the error correction can be detected.
A conventional technique for adding error-detecting codes to data used in a process of recording data in a conventional optical disc recording system is described below with reference to FIGS. 1-5.
FIG. 1 shows a construction of a conventional optical disc recording system 9000.
The conventional optical disc recording system 9000 receives data from an external host apparatus 9900, adds headers, error-detecting codes, and error-correcting codes to the received data, modulates the data, and writes the modulated data onto the DVD. The conventional optical disc recording system 9000 includes a bus 9001, a microcomputer 9010, a DMA controller 9020, an input interface unit 9030, a scramble unit 9040, an EDC generation unit 9050, a buffer interface unit 9060, a buffer memory 9061, an ECC generator 9070, a modulating unit 9080, and an optical disc recording unit 9090.
The DVD is an optical disc. Hereinafter, the DVD is called optical disc. Also, of the data transferred from the external host apparatus 9900 to be recorded in the optical disc, an amount of data corresponding to a data field which will be described later is called original data. Therefore, it may happen that the external host apparatus 9900 transmits a plurality of pieces of original data.
Now, the construction of information to be recorded onto the optical disc is described below.
FIG. 2 shows a configuration of the data sector. FIG. 3 shows a configuration of the ECC block.
Here, the data sector is a unit of data standardized for the DVD, and the ECC block is a unit of data used in adding error-correcting codes, where ECC stands for Error-Correcting Code.
As shown in FIG. 2, each data sector is composed of a header field, a data field, and an EDC (Error-Detecting Code). As shown in FIG. 3, each ECC block is composed of 16 data sectors and two kinds of error-correcting codes: an inner parity correcting code, and an outer parity correcting code. The error-correcting codes are product codes by the Reed-Solomon codes.
The header field is composed of an ID code, an error-correcting code (IEC) related to the ID code, and a reserve area. The ID code is address information related to the current data sector.
The data field is composed of 2,048 bytes of data which is the original data having been subjected to a scramble which will be described later.
The components of the optical disc recording system 9000 are described below (see FIG. 1).
The microcomputer 9010, including a ROM storing a program to be executed, controls the entire operation of the optical disc recording system 9000 by receiving data transfer notifications from the external host apparatus 9900. The microcomputer 9010 also generates headers to be attached to the original data and writes the generated headers into the buffer memory 9061.
The DMA controller 9020 receives addresses of the transfer source and transfer destination from the microcomputer 9010 and transfers data between the buffer memory 9061 and other units in the level of hardware.
The input interface unit 9030, being achieved by an SCSI interface or the like and connecting the external host apparatus 9900 to the optical disc recording system 9000, has a function of transferring a data transfer notification from the external host apparatus 9900 to the microcomputer 9010. The input interface unit 9030, including a FIFO buffer 9031 for storing a certain amount of data which makes up the original data, receives the original data from the external host apparatus 9900.
The scramble unit 9040 subjects the original data to the scramble.
The term "scramble" used here indicates arranging data elements of the data sequence on a pseudo random basis. That is, the scramble is a process performed to prevent the amount of information on amplitude change points from decreasing by setting the same probability of occurrence for data "1" and data "0." With this process, it is possible for the optical disc playback side to prevent occurrence of a problem that the playback side which reads the data sequences from the optical disc fails to extract the timing elements from the data sequences and fails to play back the data sequences. It should be noted here that in a data transmitting/receiving system, the transmitting side subjects the data sequences to the scramble before transmission so that the receiving side surely receives the data sequences.
The EDC generation unit 9050 generates error-detecting codes corresponding to the original data.
The ECC generator 9070 generates error-correcting codes corresponding to data (see FIG. 3).
The modulating unit 9080 modulates data digitally. The optical disc recording unit 9090 records data onto the optical disc by irradiating laser rays onto the optical disc from the laser light source.
The buffer memory 9061 is a RAM for storing the headers, original data, error-detecting codes, and error-correcting codes. The buffer interface unit 9060 controls reading and writing of data from and into the buffer memory 9061.
The operation of a conventional optical disc recording system is described below with reference to FIGS. 4 and 5.
FIG. 4 is a flowchart showing the operation of a conventional optical disc recording system 9000.
FIG. 5 is a flow diagram showing data flow in the conventional optical disc recording system 9000 in which error-detecting codes are finally stored in the buffer memory 9061.
Note that FIG. 5 shows data being transferred in unit of one data sector.
In the optical disc recording system 9000, the FIFO buffer 9031 in the input interface unit 9030 receives the original data from the external host apparatus 9900 (1 in FIG. 5). On receiving information on the address setting and the like from the microcomputer 9010, the DMA controller 9020 transfers the original data from the FIFO buffer to the buffer memory 9061 (step S9101, 2 in FIG. 5). After this step, the buffer memory 9061 stores data which is the content of the data field.
After the content of the data field is stored in the buffer memory 9061, the microcomputer 9010 generates the header field (see FIG. 2), and writes the created header field into the buffer memory 9061 (step S9102, 3 in FIG. 5). After this step, the buffer memory 9061 stores the header field.
After the header field is stored in the buffer memory 9061, the microcomputer 9010 sets addresses and the like in the DMA controller 9020. The DMA controller 9020 then transfers the data field from the buffer memory 9061 to the EDC generation unit 9050 (4 in FIG. 5). The EDC generation unit 9050 then generates error-detecting codes based on the data field. The DMA controller 9020 then transfers the error-detecting codes from the EDC generation unit 9050 to the buffer memory 9061 (step S9103, 5 in FIG. 5).
After the error-detecting codes are stored in the buffer memory 9061, the scramble unit 9040 subjects the data field stored in the buffer memory 9061 to the scramble (step S9104). The ECC generator generates error-correcting codes for the header field, data field, and error-detecting codes and stores the generated error-correcting codes in the buffer memory 9061 (step S9105).
It should be noted here that a set of two kinds of error-correcting codes is attached to every set of 16 data sectors (see FIG. 3). That is, steps S9101 to S9104 are performed for each data sector and step S9105 is performed for each set of 16 data sectors.
After the above processes, the optical disc recording system 9000 transfers data from the buffer memory 9061 to the modulating unit 9080, in which the data is modulated. The optical disc recording system 9000 then allows the optical disc recording unit 9090 to record the modulated data onto the optical disc.
As described above, the conventional optical disc recording system 9000 adds information such as error-detecting codes to the original data, as a preparation to modulation and recording processes.
However, in the conventional example shown above, the data field composed of 2,048 bytes of data, being a target of error detection, is read out from the buffer memory 9061 and sent to the EDC generation unit 9050 so that error-detecting codes are generated. This requires a considerable time for accessing the buffer memory 9061. This causes a delay in the entire processing.